# 字符串常用操作：创建/查找/修改/判断
# 一.创建
# 1.单引号/双引号
a = 'hello python'
b = "hello world"

# 2.三引号 支持换行输入
c = """hello
    python"""
print(a)
print(b)
print(c)

# 3.通过str()转换创建
d = str(2)
print(type(d))

# 二.查找
# 1.find方法
a = 'hello python and learn python and have fun'
print(a.find('and'))
print(a.find('and',15,42))# 可以放查找的起始位置和结束位置，如不放则默认在全部范围内查找
print(a.find('ands')) # find找不到会返回-1

# 2.index方法
print(a.index('and'))
print(a.index('and',15,42))# 可以放查找的起始位置和结束位置，如不放则默认在全部范围内查找
#print(a.index('ands'))#!!index 如果找不到会报错

# 3.rfind/rindex方法 ：与find/index 方法一样，方向改成从右查找
print(a.rindex('fun'))
print(a.rfind('fun'))

# 4.count方法: 字符串序列.count(子串, 开始位置下标, 结束位置下标)
print(a.count('python'))

# 三.修改
# 1.replace方法 :字符串序列.replace(旧子串, 新子串, 替换次数)
a = 'hello python and learn python and have fun and practice'
print(a.replace('python','python2')) # 不加替换次数则替换全部
print(a.replace('python','python2',1))# 可以配合count使用
# 2.分割 split方法: 字符串序列.split(分割字符, num)-返回列表
print(a.split('and'))
print(a.split('and',1)) # 最后一个参数代表分割次数
# 3.join方法 字符或子串.join(多字符串组成的序列)
list1=['a','b','c','d']
t1=('aa','bb','cc')
print('-'.join(list1))
print('--'.join(t1))
# 4.strip方法
a = '    hello python and learn python and have fun and practice   '
print(a.lstrip())#清除左边的空格
print(a.rstrip())#清除右边的空格
print(a.strip())#清除两边的空格
# 5.字符串对齐、居中 函数：ljust/rjust/center
a='hello'
print(a.ljust(10,'.'))
print(a.rjust(10,'.'))
print(a.center(10,'.'))

# 四.判断
# 1.starswith 字符串序列.startswith(子串, 开始位置下标, 结束位置下标)
a = 'hello python and learn python and have fun and practice'
print(a.startswith('hello')) #返回true
print(a.startswith('hello',10,40)) #返回false
print(a.startswith('hellos'))

# 2.endswith
print(a.endswith('ce')) #返回true
print(a.endswith('practice',30,len(a))) #返回true


